package org.example.pet.vo;

import lombok.Data;
import java.util.List;

/**
 * 通用分页返回 VO
 * @param <T> 数据列表泛型
 */
@Data
public class PageVO<T> {
    // 数据列表
    private List<T> records;
    // 总条数
    private Long total;
    // 当前页
    private Integer page;
    // 每页条数
    private Integer pageSize;
    // 总页数
    private Integer totalPages;

    /**
     * 构造分页结果（自动计算总页数）
     */
    public PageVO(List<T> records, Long total, Integer page, Integer pageSize) {
        this.records = records;
        this.total = total;
        this.page = page;
        this.pageSize = pageSize;
        // 计算总页数：(总条数 + 每页条数 - 1) / 每页条数（向上取整）
        this.totalPages = (int) ((total + pageSize - 1) / pageSize);
    }
}